লারাভেল কনফিগারেশন Laravel ফ্রেমওয়ার্কের মূল উপাদানগুলির মধ্যে একটি এবং এটি অ্যাপ্লিকেশন সেটিংস এবং চাহিদা অনুযায়ী কাস্টমাইজ করার সুযোগ দেয়। নিচে Laravel কনফিগারেশনের বিভিন্ন দিক নিয়ে বিস্তারিত আলোচনা করা হলো:
Laravel-এর সমস্ত কনফিগারেশন ফাইলগুলি config/
ডিরেক্টরিতে অবস্থিত। প্রতিটি কনফিগারেশন ফাইল নির্দিষ্ট সিস্টেম বা ফিচারের জন্য ব্যবহার করা হয়। উদাহরণস্বরূপ:
app.php
: অ্যাপ্লিকেশনের সাধারণ সেটিংস যেমন টাইমজোন, লোকেল, অ্যাপ্লিকেশনের নাম ইত্যাদি এখানে নির্ধারণ করা হয়।database.php
: ডাটাবেস সংক্রান্ত কনফিগারেশন যেমন ড্রাইভার, কানেকশন, এবং ডাটাবেসের ডিফল্ট সেটিংস।mail.php
: ইমেইল সংক্রান্ত কনফিগারেশন যেমন SMTP, API key ইত্যাদি।queue.php
: Queue সংক্রান্ত সেটিংস।.env
ফাইলLaravel-এর প্রধান কনফিগারেশন ফাইল হলো .env
। এই ফাইলটি পরিবেশ-নির্ভর কনফিগারেশন রাখতে ব্যবহার করা হয়। অ্যাপ্লিকেশন লোকাল, স্টেজিং বা প্রোডাকশন পরিবেশে চলে তার উপর ভিত্তি করে বিভিন্ন মান সেট করা যায়।
.env
ফাইলে আপনি বিভিন্ন গুরুত্বপূর্ণ কনফিগারেশন রাখবেন, যেমন:
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:.....
APP_DEBUG=true
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
যেহেতু Laravel-এর কনফিগারেশন ফাইলগুলি অ্যাপ্লিকেশনের একাধিক ফিচারের উপর নির্ভর করে, তাই কনফিগারেশন ক্যাশ করার অপশন রয়েছে। এর ফলে অ্যাপ্লিকেশন আরও দ্রুত চলে। কনফিগারেশন ক্যাশ করার জন্য নিচের কমান্ডটি ব্যবহার করা হয়:
php artisan config:cache
ক্যাশ ক্লিয়ার করতে চাইলে:
php artisan config:clear
Laravel আপনাকে আপনার নিজস্ব কনফিগারেশন ফাইল তৈরি করার সুযোগ দেয়। যদি আপনি কোনও নির্দিষ্ট কনফিগারেশন তৈরি করতে চান, তাহলে config/
ডিরেক্টরিতে একটি নতুন ফাইল তৈরি করে সেই ফাইলে আপনার কনফিগারেশন যুক্ত করতে পারেন।
// config/custom.php
return [
'setting1' => 'value1',
'setting2' => 'value2',
];
এরপর এই কনফিগারেশন অ্যাক্সেস করার জন্য:
$value = config('custom.setting1');
Laravel আপনাকে পরিবেশভিত্তিক কনফিগারেশন ব্যবহারের সুযোগ দেয়। উদাহরণস্বরূপ, আপনি .env
ফাইলে বিভিন্ন পরিবেশে ভিন্ন ভিন্ন ডেটা সেট করতে পারবেন।
Laravel স্বয়ংক্রিয়ভাবে .env
ফাইলের ভিত্তিতে সঠিক পরিবেশে চালিত হয়।
Laravel-এর কনফিগারেশনগুলো সহজে পরিবর্তন ও মাইগ্রেট করার সুবিধা দেয়। উদাহরণস্বরূপ, যদি আপনি প্রোডাকশনে নতুন ডাটাবেস বা সার্ভিস যোগ করেন, তবে .env
ফাইলে পরিবর্তন করলেই কাজ হয়ে যায়।
Laravel Herd ইনস্টল ও কনফিগার করার জন্য কিছু বিশেষ সেটিংস প্রয়োজন হতে পারে, বিশেষ করে ম্যাক এবং উইন্ডোজ অপারেটিং সিস্টেমের ক্ষেত্রে। Laravel Herd সম্পর্কে বিস্তারিত কনফিগারেশন ধাপগুলো নিচের মতো হতে পারে:
ম্যাকে Laravel Herd ব্যবহারের জন্য PHP এবং অন্যান্য ডিপেন্ডেন্সি ইনস্টল করতে হয়। Laravel Herd সাধারণত স্বয়ংক্রিয়ভাবে এই ডিপেন্ডেন্সিগুলো ইনস্টল করে।
উইন্ডোজে Herd সেটআপ করার জন্য Windows Subsystem for Linux (WSL) প্রয়োজন হতে পারে।
Laravel কনফিগারেশন এত সহজ এবং কাস্টমাইজযোগ্য যে আপনি সহজেই আপনার অ্যাপ্লিকেশন অনুযায়ী সেটআপ এবং পরিচালনা করতে পারবেন।
Laravel-এর ডিরেক্টরি কনফিগারেশন হলো একটি গুরুত্বপূর্ণ অংশ, যা অ্যাপ্লিকেশনের বিভিন্ন ফোল্ডারের কাঠামো এবং ফাংশন নিয়ন্ত্রণ করে। নিচে Laravel-এর ডিরেক্টরি স্ট্রাকচার এবং এর প্রতিটি অংশের কাজ নিয়ে আলোচনা করা হলো:
Laravel এর মূল ডিরেক্টরিগুলি নিম্নলিখিত:
├── app
├── bootstrap
├── config
├── database
├── public
├── resources
├── routes
├── storage
├── tests
└── vendor
app/
ডিরেক্টরিapp/
ডিরেক্টরি Laravel অ্যাপ্লিকেশনের মূল বিজনেস লজিকের জন্য ব্যবহার করা হয়। এখানে অ্যাপ্লিকেশনের কন্ট্রোলার, মডেল, সার্ভিস, এবং ইভেন্ট সংক্রান্ত কোড থাকে।
Console/
: কনসোল কমান্ডসমূহ, যেমন Artisan কমান্ড।Exceptions/
: কাস্টম এক্সসেপশন হ্যান্ডলিং।Http/
: HTTP রিকোয়েস্ট, রাউটিং, কন্ট্রোলার, এবং মিডলওয়্যার।Controllers/
: অ্যাপ্লিকেশনের কন্ট্রোলার ফাইলগুলি এখানে থাকে।Middleware/
: HTTP রিকোয়েস্ট ফিল্টারিং মিডলওয়্যার।Models/
: Eloquent ORM মডেল, যা ডাটাবেসের সাথে সম্পর্কিত কাজ করে।Providers/
: সার্ভিস প্রোভাইডার, যা অ্যাপ্লিকেশনের বিভিন্ন সার্ভিস রেজিস্টার এবং বুট করার জন্য দায়ী।bootstrap/
ডিরেক্টরিএটি Laravel-এর বুটস্ট্র্যাপিং কাজ পরিচালনা করে। এখানে app.php
ফাইল রয়েছে, যা অ্যাপ্লিকেশন চালু হওয়ার সময় প্রথমে রান হয়।
cache/
: অ্যাপ্লিকেশনের অটোলোডার এবং কনফিগারেশন ক্যাশ।config/
ডিরেক্টরিLaravel-এর সব কনফিগারেশন ফাইল এখানে থাকে। প্রতিটি কনফিগারেশন ফাইল অ্যাপ্লিকেশনের নির্দিষ্ট একটি দিক নিয়ন্ত্রণ করে। উদাহরণস্বরূপ:
app.php
: সাধারণ অ্যাপ্লিকেশন সেটিংস।database.php
: ডাটাবেস কানেকশন এবং সেটআপ।mail.php
: মেইল সার্ভিসের সেটিংস।queue.php
: Queue সার্ভিসের কনফিগারেশন।database/
ডিরেক্টরিLaravel ডাটাবেস সম্পর্কিত ফাইল এবং মাইগ্রেশন সংরক্ষণ করতে এই ডিরেক্টরি ব্যবহার করে।
factories/
: মডেলের জন্য ফ্যাক্টরি সংজ্ঞা, যা টেস্টিং বা ডামি ডেটা তৈরিতে ব্যবহৃত হয়।migrations/
: ডাটাবেস টেবিল তৈরি ও মডিফাই করার জন্য মাইগ্রেশন ফাইল।seeds/
: ডাটাবেসে ডিফল্ট ডেটা সিড করার জন্য।public/
ডিরেক্টরিLaravel-এর ফ্রন্ট-ফেসিং ফাইল যেমন index.php
, যেখান থেকে সমস্ত রিকোয়েস্ট শুরু হয়। এছাড়াও এখানে CSS, JavaScript, এবং ছবি ইত্যাদি পাবলিক অ্যাসেট ফাইল থাকে।
index.php
: এন্ট্রি পয়েন্ট, যেখানে সমস্ত HTTP রিকোয়েস্ট প্রসেস করা হয়।resources/
ডিরেক্টরিএই ডিরেক্টরি সমস্ত ভিউ ফাইল, ভাষার ফাইল এবং অন্য টেমপ্লেট ফাইল রাখার জন্য ব্যবহৃত হয়।
views/
: Blade টেমপ্লেট ফাইল। এই ফাইলগুলি Laravel-এর ভিউ লেয়ার হিসাবে কাজ করে।lang/
: লোকেলাইজেশন ফাইল, যা অ্যাপ্লিকেশনের ভাষাগত সমর্থন দেয়।css/
এবং js/
: স্ট্যাটিক অ্যাসেট ফাইল।routes/
ডিরেক্টরিLaravel-এর সমস্ত রাউটিং সম্পর্কিত ফাইল এই ডিরেক্টরিতে থাকে।
web.php
: ওয়েব ইন্টারফেসের জন্য রাউট।api.php
: API রাউটের জন্য।console.php
: কনসোল-ভিত্তিক রাউট।channels.php
: ব্রডকাস্টিং রাউট।storage/
ডিরেক্টরিLaravel অ্যাপ্লিকেশনের ফাইল সিস্টেম যেমন লগস, ক্যাশ, সেশন এবং ফাইল আপলোড এখানে সংরক্ষণ করা হয়।
app/
: অ্যাপ্লিকেশনের জন্য সংরক্ষিত ডেটা।framework/
: ক্যাশ ফাইল এবং সেশন সংরক্ষণ।logs/
: লগ ফাইল, যেখানে অ্যাপ্লিকেশনের কার্যকলাপ সংরক্ষিত থাকে।tests/
ডিরেক্টরিLaravel-এর বিল্ট-ইন টেস্টিং সুবিধা রয়েছে, এবং সমস্ত টেস্ট ফাইল এখানে রাখা হয়। এখানে ইউনিট টেস্ট এবং ফিচার টেস্ট আলাদা আলাদা ফোল্ডারে রাখা হয়।
Feature/
: ফিচার টেস্ট।Unit/
: ইউনিট টেস্ট।vendor/
ডিরেক্টরিComposer-এর মাধ্যমে ইনস্টল করা সমস্ত প্যাকেজ এবং ডিপেন্ডেন্সি এখানে রাখা হয়।
Laravel আপনাকে কিছু ডিরেক্টরি যেমন storage
এবং public
এর লোকেশন কাস্টমাইজ করার সুযোগ দেয়। এটি পরিবর্তন করতে হলে bootstrap/app.php
ফাইলে কনফিগারেশন পরিবর্তন করতে হবে।
Laravel-এর ডিরেক্টরি স্ট্রাকচার অত্যন্ত সুসংহত, যা ডেভেলপারদের কাজ সহজ করে এবং অ্যাপ্লিকেশন উন্নয়নের জন্য সঠিক পরিবেশ তৈরি করে।
কনফিগারেশন সম্পর্কে আরও জানতে কনিগারেশন ব্লগটি পড়ুন।